Red Hat System Administration II 8.2

Глава 8. Реализация расширенных функций хранилища

Аннотация

Цель Управление хранилищем с помощью системы управления локальным хранилищем Stratis и использование томов VDO для оптимизации использования хранилища
Задачи
  • Управление многоуровневым хранилищем с помощью системы управления локальным хранилищем Stratis

  • Сжатие и дедупликация данных на запоминающих устройствах с помощью VDO для оптимизации использования хранилища

Разделы
  • Управление многоуровневым хранилищем с помощью Stratis (и упражнение)

  • Сжатие и дедупликация хранилища с помощью VDO (и упражнение)

Лабораторная работа

Реализация расширенных функций хранилища

Управление многоуровневым хранилищем с помощью Stratis

Задачи

После завершения этого раздела вы сможете управлять многоуровневым хранилищем с помощью системы управления локальным хранилищем Stratis.

Описание архитектуры Stratis

Stratis ― это новое решение по управлению локальным хранилищем для Linux. Stratis упрощает начальную настройку, изменение конфигурации и использование расширенных функций хранилища.

Важно

Служба Stratis доступна в виде бета-версии. Сведения о поддержке компанией Red Hat бета-версий функций см. в документе Поддержка бета-версий.

Red Hat приветствует отзывы пользователей, развертывающих Stratis.

Stratis ― это служба, которая управляет пулами физических запоминающих устройств, прозрачно создает тома для создаваемых файловых систем и управляет ими.

В Stratis файловые системы создаются из общих пулов дисковых устройств с использованием метода, известного как динамическое выделение ресурсов (или тонкая подготовка). Вместо немедленного выделения пространства физического хранилища под создаваемую файловую систему служба Stratis динамически выделяет пространство из пула по мере того, как в файловой системе сохраняются новые данные. Поэтому размер файловой системы может быть указан как 1 ТиБ, но в реальности ей может быть выделено 100 ГиБ пространства хранилища из пула.

Вы можете создать несколько пулов из разных запоминающих устройств. Из каждого пула можно создать одну или несколько файловых систем. В настоящее время можно создать до 224 файловых систем на один пул.

Компоненты, составляющие файловую систему под управлением Stratis, созданы из стандартных компонентов Linux. Решение Stratis основано на подсистеме Device Mapper, которая также используется для реализации LVM, а файловые системы, которыми управляет Stratis, форматируются под XFS.

Приведенная ниже диаграмма иллюстрирует размещение элементов в системе управления хранилищем Stratis. Блочные запоминающие устройства, такие как жесткие диски и SSD-накопители, назначаются в пулы, и каждое из них выделяет для пула часть физического хранилища. Файловые системы создаются из пулов, а физическое хранилище сопоставляется с каждой файловой системой по мере необходимости.

Рисунок 8.1: Элементы Stratis

Работа с хранилищем Stratis

Для управления файловыми системами с помощью системы Stratis необходимо установить пакеты stratis-cli и stratisd. Пакет stratis-cli предоставляет команду stratis, которая отправляет запросы на изменение конфигурации системному демону stratisd. Пакет stratisd предоставляет службу stratisd, которая обрабатывает запросы на изменение конфигурации, а также контролирует блочные устройства, пулы и файловые системы, которые использует Stratis.

Предупреждение

Файловые системы, созданные Stratis, должны настраиваться только с помощью утилит и команд Stratis.

Stratis использует сохраненные метаданные для идентификации управляемых пулов, томов и файловых систем. Настройка файловых систем Stratis вручную с использованием команд, не связанных со Stratis, может привести к потере метаданных и помешать Stratis идентифицировать созданные файловые системы.

Установка и включение Stratis

Для использования Stratis необходимо установить программное обеспечение и запустить службу stratisd.

  • С помощью команды yum install установите пакеты stratis-cli и stratisd.

    [root@host ~]# yum install stratis-cli stratisd
    ...output omitted...
    Is this ok [y/N]: y
    ...output omitted...
    Complete!
  • С помощью команды systemctl активируйте службу stratisd.

    [root@host ~]# systemctl enable --now stratisd

Объединение блочных хранилищ в пулы Stratis

Далее приведены распространенные операции, выполняемые с помощью системы управления хранилищем Stratis.

  • Используйте команду stratis pool create для создания пулов из одного или нескольких блочных устройств.

    [root@host ~]# stratis pool create pool1 /dev/vdb

    Каждый пул является подкаталогом каталога /stratis.

  • Используйте команду stratis pool list для просмотра списка доступных пулов.

    [root@host ~]# stratis pool list
    Name     Total Physical Size  Total Physical Used
    pool1                  5 GiB               52 MiB

    Предупреждение

    Команда stratis pool list очень важна, так как она показывает, сколько места используется (и, следовательно, сколько места доступно) в пулах.

    Если в пуле не хватает места, новые данные, записываемые в файловые системы, принадлежащие к этому пулу, будут потеряны.

  • Используйте команду stratis pool add-data для добавления дополнительных блочных устройств в пул.

    [root@host ~]# stratis pool add-data pool1 /dev/vdc
  • Используйте команду stratis blockdev list для просмотра блочных устройств в пуле.

    [root@host ~]# stratis blockdev list pool1
    Pool Name  Device Node    Physical Size   State  Tier
    pool1      /dev/vdb               5 GiB  In-use  Data
    pool1      /dev/vdc               5 GiB  In-use  Data

Управление файловыми системами Stratis

  • Используйте команду stratis filesystem create для создания файловой системы из пула.

    [root@host ~]# stratis filesystem create pool1 fs1

    Ссылки на файловые системы Stratis находятся в каталоге /stratis/pool1.

  • Используйте команду stratis filesystem list для просмотра списка доступных файловых систем.

    [root@host ~]# stratis filesystem list
    Pool Name  Name  Used     Created            Device              UUID
    pool1      fs1   546 MiB  Sep 23 2020 13:11  /stratis/pool1/fs1  31b9363badd...

    Предупреждение

    Команда df показывает, что все новые файловые системы XFS под управлением Stratis, имеют размер 1 ТиБ независимо от того, какой в реальности объем физического хранилища выделен файловой системой. Поскольку ресурсы для файловой системы выделяются динамически, в пуле может быть недостаточно места для всей файловой системы, особенно если другие файловые системы в пуле используют все доступное хранилище.

    Таким образом, свободного места в пуле хранилищ может уже не быть, но команда df все равно покажет, что в файловой системе есть свободное место. Если в пуле нет ресурсов хранилища для файловой системы, дальнейшие попытки записи в эту файловую систему могут оказаться неудачными и привести к потере данных.

    Используйте команду stratis pool list для отслеживания свободных ресурсов хранилища, доступных в пулах Stratis.

  • С помощью команды stratis filesystem snapshot можно создать моментальный снимок файловой системы под управлением Stratis. Моментальные снимки не зависят от исходной файловой системы.

    [root@host ~]# stratis filesystem snapshot pool1 fs1 snapshot1

Монтирование файловых систем Stratis на постоянной основе

Чтобы файловые системы Stratis монтировались на постоянной основе, укажите в файле /etc/fstab сведения о соответствующей файловой системе. Следующая команда отображает UUID файловой системы, который необходимо указать в файле /etc/fstab для идентификации этой файловой системы.

[root@host ~]# lsblk --output=UUID /stratis/pool1/fs1
UUID
31b9363b-add8-4b46-a4bf-c199cd478c55

Ниже приведен пример записи в файле /etc/fstab, которая обеспечивает монтирование файловой системы Stratis на постоянной основе. Этот пример записи представляет собой одну длинную строку в файле.

UUID=31b9363b-add8-4b46-a4bf-c199cd478c55 /dir1 xfs defaults,x-systemd.requires=stratisd.service 0 0

Опция x-systemd.requires=stratisd.service приостанавливает монтирование файловой системы во время начальной загрузки системы, пока systemd не запустит службу stratisd.service.

Важно

Если вы не добавите опцию монтирования x-systemd.requires=stratisd.service в файл /etc/fstab для каждой файловой системы Stratis, машина не сможет корректно запуститься и загрузится в цель emergency.target при следующей перезагрузке.

Ссылки

Дополнительные сведения см. в главе Managing layered local storage with Stratis руководства Red Hat Enterprise Linux 8 Configuring and Managing File Systems: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_file_systems/

Хранилище Stratis

Какие знания о ZFS, Btrfs и LVM легли в основу Stratis